/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.japo.java.matisse.samples;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFrame;

/**
 *
 * @author Fer
 */
public class BlocNotas extends javax.swing.JFrame {
    
  
    
    
    
    
    
    
    File f = new File("MiArchivo.txt");
    String anterior;
    String actual;

    public BlocNotas() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        JScroll = new javax.swing.JScrollPane();
        JTArea = new javax.swing.JTextArea();
        JMBarra = new javax.swing.JMenuBar();
        JMArchivo = new javax.swing.JMenu();
        JMINuevo = new javax.swing.JMenuItem();
        JMIAbrir = new javax.swing.JMenuItem();
        JMIGuardar = new javax.swing.JMenuItem();
        JMIGuardarComo = new javax.swing.JMenuItem();
        JSArchivo1 = new javax.swing.JPopupMenu.Separator();
        JMIConfigurarPagina = new javax.swing.JMenuItem();
        JMIImprimir = new javax.swing.JMenuItem();
        JSArchivo2 = new javax.swing.JPopupMenu.Separator();
        JMISalir = new javax.swing.JMenuItem();
        JMEditar = new javax.swing.JMenu();
        JMIDeshacer = new javax.swing.JMenuItem();
        JSEdicion1 = new javax.swing.JPopupMenu.Separator();
        JMICortar = new javax.swing.JMenuItem();
        JMICopiar = new javax.swing.JMenuItem();
        JMIPegar = new javax.swing.JMenuItem();
        JMIEliminar = new javax.swing.JMenuItem();
        JSEdicion2 = new javax.swing.JPopupMenu.Separator();
        JMIBuscar = new javax.swing.JMenuItem();
        JMIBuscarSiguiente = new javax.swing.JMenuItem();
        JMIReemplazar = new javax.swing.JMenuItem();
        JMIIra = new javax.swing.JMenuItem();
        JSEdicion3 = new javax.swing.JPopupMenu.Separator();
        JMISeleccionarTodo = new javax.swing.JMenuItem();
        JMIHoraFecha = new javax.swing.JMenuItem();
        JMFormato = new javax.swing.JMenu();
        JMIAjusteLinea = new javax.swing.JMenuItem();
        JMIFuente = new javax.swing.JMenuItem();
        JMVer = new javax.swing.JMenu();
        JCBMIBarraEstado = new javax.swing.JCheckBoxMenuItem();
        JMAyuda = new javax.swing.JMenu();
        JMITemasAyuda = new javax.swing.JMenuItem();
        JSAyuda1 = new javax.swing.JPopupMenu.Separator();
        JMIAcercaBlocNotas = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        JTArea.setColumns(20);
        JTArea.setRows(5);
        JScroll.setViewportView(JTArea);

        JMArchivo.setText("Archivo");
        JMArchivo.setMargin(new java.awt.Insets(3, 3, 3, 3));

        JMINuevo.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        JMINuevo.setText("Nuevo");
        JMArchivo.add(JMINuevo);

        JMIAbrir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        JMIAbrir.setText("Abrir...");
        JMIAbrir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JMIAbrirActionPerformed(evt);
            }
        });
        JMArchivo.add(JMIAbrir);

        JMIGuardar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.CTRL_MASK));
        JMIGuardar.setText("Guardar");
        JMIGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JMIGuardarActionPerformed(evt);
            }
        });
        JMArchivo.add(JMIGuardar);

        JMIGuardarComo.setText("Guardar Como...");
        JMArchivo.add(JMIGuardarComo);
        JMArchivo.add(JSArchivo1);

        JMIConfigurarPagina.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
        JMIConfigurarPagina.setText("Configurar Pagina...");
        JMArchivo.add(JMIConfigurarPagina);

        JMIImprimir.setText("Imprimir...");
        JMArchivo.add(JMIImprimir);
        JMArchivo.add(JSArchivo2);

        JMISalir.setText("Salir");
        JMISalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JMISalirActionPerformed(evt);
            }
        });
        JMArchivo.add(JMISalir);

        JMBarra.add(JMArchivo);

        JMEditar.setText("Edición");

        JMIDeshacer.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, java.awt.event.InputEvent.CTRL_MASK));
        JMIDeshacer.setText("Deshacer");
        JMIDeshacer.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JMIDeshacerActionPerformed(evt);
            }
        });
        JMEditar.add(JMIDeshacer);
        JMEditar.add(JSEdicion1);

        JMICortar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        JMICortar.setText("Cortar");
        JMEditar.add(JMICortar);

        JMICopiar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
        JMICopiar.setText("Copiar");
        JMEditar.add(JMICopiar);

        JMIPegar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK));
        JMIPegar.setText("Pegar");
        JMEditar.add(JMIPegar);

        JMIEliminar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_DELETE, 0));
        JMIEliminar.setText("Eliminar");
        JMEditar.add(JMIEliminar);
        JMEditar.add(JSEdicion2);

        JMIBuscar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.CTRL_MASK));
        JMIBuscar.setText("Buscar");
        JMEditar.add(JMIBuscar);

        JMIBuscarSiguiente.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F3, 0));
        JMIBuscarSiguiente.setText("Buscar Siguiente...");
        JMEditar.add(JMIBuscarSiguiente);

        JMIReemplazar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_MASK));
        JMIReemplazar.setText("Reemplazar...");
        JMEditar.add(JMIReemplazar);

        JMIIra.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_MASK));
        JMIIra.setText("Ir a...");
        JMEditar.add(JMIIra);
        JMEditar.add(JSEdicion3);

        JMISeleccionarTodo.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_MASK));
        JMISeleccionarTodo.setText("Seleccionar Todo");
        JMEditar.add(JMISeleccionarTodo);

        JMIHoraFecha.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0));
        JMIHoraFecha.setText("Hora y Fecha");
        JMEditar.add(JMIHoraFecha);

        JMBarra.add(JMEditar);

        JMFormato.setText("Formato");

        JMIAjusteLinea.setText("Ajuste de linea");
        JMFormato.add(JMIAjusteLinea);

        JMIFuente.setText("Fuente...");
        JMFormato.add(JMIFuente);

        JMBarra.add(JMFormato);

        JMVer.setText("Ver");

        JCBMIBarraEstado.setSelected(true);
        JCBMIBarraEstado.setText("Barra de Estado");
        JMVer.add(JCBMIBarraEstado);

        JMBarra.add(JMVer);

        JMAyuda.setText("Ayuda");

        JMITemasAyuda.setText("Temas de ayuda");
        JMAyuda.add(JMITemasAyuda);
        JMAyuda.add(JSAyuda1);

        JMIAcercaBlocNotas.setText("Acerca de Bloc de Notas");
        JMAyuda.add(JMIAcercaBlocNotas);

        JMBarra.add(JMAyuda);

        setJMenuBar(JMBarra);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(JScroll, javax.swing.GroupLayout.PREFERRED_SIZE, 765, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(JScroll, javax.swing.GroupLayout.DEFAULT_SIZE, 587, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void JMISalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JMISalirActionPerformed
        System.exit(0);
    }//GEN-LAST:event_JMISalirActionPerformed

    private void JMIGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JMIGuardarActionPerformed
        Guardar(f);
    }//GEN-LAST:event_JMIGuardarActionPerformed

    private void JMIAbrirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JMIAbrirActionPerformed
        Abrir();
    }//GEN-LAST:event_JMIAbrirActionPerformed

    private void JMIDeshacerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JMIDeshacerActionPerformed


//        actual = JTArea.getText();


        
        
        
        
        if (JTArea.getText() == actual) {
            JTArea.setText(anterior);
        }
//        } else if (JTArea.getText() != anterior) {
//            JTArea.setText(anterior);
//        }

    }//GEN-LAST:event_JMIDeshacerActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(BlocNotas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(BlocNotas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(BlocNotas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(BlocNotas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new BlocNotas().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JCheckBoxMenuItem JCBMIBarraEstado;
    private javax.swing.JMenu JMArchivo;
    private javax.swing.JMenu JMAyuda;
    private javax.swing.JMenuBar JMBarra;
    private javax.swing.JMenu JMEditar;
    private javax.swing.JMenu JMFormato;
    private javax.swing.JMenuItem JMIAbrir;
    private javax.swing.JMenuItem JMIAcercaBlocNotas;
    private javax.swing.JMenuItem JMIAjusteLinea;
    private javax.swing.JMenuItem JMIBuscar;
    private javax.swing.JMenuItem JMIBuscarSiguiente;
    private javax.swing.JMenuItem JMIConfigurarPagina;
    private javax.swing.JMenuItem JMICopiar;
    private javax.swing.JMenuItem JMICortar;
    private javax.swing.JMenuItem JMIDeshacer;
    private javax.swing.JMenuItem JMIEliminar;
    private javax.swing.JMenuItem JMIFuente;
    private javax.swing.JMenuItem JMIGuardar;
    private javax.swing.JMenuItem JMIGuardarComo;
    private javax.swing.JMenuItem JMIHoraFecha;
    private javax.swing.JMenuItem JMIImprimir;
    private javax.swing.JMenuItem JMIIra;
    private javax.swing.JMenuItem JMINuevo;
    private javax.swing.JMenuItem JMIPegar;
    private javax.swing.JMenuItem JMIReemplazar;
    private javax.swing.JMenuItem JMISalir;
    private javax.swing.JMenuItem JMISeleccionarTodo;
    private javax.swing.JMenuItem JMITemasAyuda;
    private javax.swing.JMenu JMVer;
    private javax.swing.JPopupMenu.Separator JSArchivo1;
    private javax.swing.JPopupMenu.Separator JSArchivo2;
    private javax.swing.JPopupMenu.Separator JSAyuda1;
    private javax.swing.JPopupMenu.Separator JSEdicion1;
    private javax.swing.JPopupMenu.Separator JSEdicion2;
    private javax.swing.JPopupMenu.Separator JSEdicion3;
    private javax.swing.JScrollPane JScroll;
    private javax.swing.JTextArea JTArea;
    // End of variables declaration//GEN-END:variables

    private File Guardar(File f) {
        BufferedWriter bufferedWriter = null;

        try {
            bufferedWriter = new BufferedWriter(new FileWriter(f));
            bufferedWriter.write(JTArea.getText());

        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (bufferedWriter != null) {
                    bufferedWriter.flush();
                    bufferedWriter.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();

            }
        }
        return f;
    }

    private void Abrir() {

        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            // Lectura del fichero
            String linea;
            while ((linea = br.readLine()) != null) {
                JTArea.setText(linea);
            }
            br.close();
        } catch (Exception e) {
            e.printStackTrace();

        }

    }
}
